#include <stdlib.h>
#include <string.h>
#include "attrib.h"

attrib_p attrib_new(char *key, char *value) {
	attrib_p attrib;

	attrib = (attrib_p)malloc(sizeof(attrib_t));
	
	if (attrib == NULL) return attrib;
		
	attrib->key = key;
	attrib->value = value;
	
	return attrib;
}
	
void attrib_set_key(attrib_p attrib, char *key) {
	attrib->key = key;
}

char *attrib_get_key(attrib_p attrib) {
	return attrib->key;
}

void attrib_set_value(attrib_p attrib, char *value) {
	attrib->value = value;
}

char *attrib_get_value(attrib_p attrib) {
	return attrib->value;
}

int attrib_cmp(attrib_p a1, attrib_p a2) {
	char *k1 = attrib_get_key(a1);
	char *v1 = attrib_get_value(a1);
	char *k2 = attrib_get_key(a2);
	char *v2 = attrib_get_value(a2);

	if (strcmp(k1, k2) != 0)
		return -1;
	if (strcmp(v1, v2) != 0)
		return 1;
	return 0;
}

void attrib_free(attrib_p attrib) {
	free(attrib);
}

